#pragma once

#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif

// 请仔细阅读info文件学习使用方法

#define STATUS_BAR_APP_USE 0 // 状态栏APP是否启用，1启用，0关闭

#define STATUS_BAR_USE_APP_MANAGER 0     // 使用应用管理器APP进行注册，关闭可不依赖APP管理器运行
#define STATUS_BAR_USE_TOPIC_MESSENGER 0 // 使用主题消息APP进行数据交互，关闭可不依赖消息管理器运行，将启用用户API提供控制修改,暂未适配完毕，不可关闭

// 功能配置
#define STATUS_BAR_SHOW_DEFULT 1        // 默认显示状态,1打开,0关闭
#define STATUS_BAR_USE_NOTIFICATION 0   // 使用通知功能（状态栏左侧下拉呼出)
#define STATUS_BAR_USE_CONTROL_CENTER 1 // 使用控制中心（状态栏右侧下拉呼出)

// 位置配置
#define STATUS_BAR_Y_OFFSET 0        // 图标行居中偏移
#define STATUS_BAR_BORDER_SPACE 5    // 状态栏两侧图标距边框间距
#define STATUS_BAR_ICON_SPACE 3      // 图标间距
#define STATUS_BAR_HEIGHT 20         // 信息条高度
#define STATUS_BAR_EXPAND_MOVE 30    // 展开窗口移动距离
#define STATUS_BAR_HIDDEN_MOVE 30    // 隐藏窗口移动距离
#define STATUS_BAR_OPEN_Y_OFFSET 10  // 展开展开窗口触摸点Y轴偏移量
#define STATUS_BAR_CLOSE_Y_OFFSET 10 // 关闭展开窗口触摸点Y轴偏移量

// 虚化背景效果配置
#define STATUS_BAR_USE_IMG_BACKGROUND 1 // 使用背景虚化效果
#define STATUS_BAR_ANTIALIAS 1          // 模糊处理抗锯齿使能,打开对处理器消耗更大但像素点衔接更平滑
#define STATUS_BAR_COLOR_MIX 0          // 像素点融合,打开对处理器消耗更大但像素继承更完整,但画面会有偏移
#define STATUS_BAR_IMG_FULL 1           // 使用全画幅图片,打开对内存消耗更大但动画更流畅
#define STATUS_BAR_PROPORTION 8         // 简化比例，数字越大背景越模糊，默认8

// 信息条显示内容配置
// 配置项
#define STATUS_BAR_BAT_LOW_LEVEL 20 // 电池低电量阈值
#define STATUS_BAR_BG_OPA 128        // 信息条背景透明度，如看得清字体可以设为0，看不清加大到能看清即可
// 启用项
#define STATUS_BAR_USE_TIME 1           // 使用时间部件
#define STATUS_BAR_USE_BATTERY 1        // 使用电池图标部件
#define STATUS_BAR_USE_BATTERY_NUMBER 1 // 使用电量数字显示
#define STATUS_BAR_USE_BATTERY_CHARGE 1 // 使用充电图标
#define STATUS_BAR_USE_WIFI 1           // 使用WIFI图标
#define STATUS_BAR_USE_BT 1             // 使用蓝牙显示

// 通知中心配置
#define STATUS_BAR_NOTIFICATIONS_CLEAR_SIZE 35      // 通知中心清除按钮大小
#define STATUS_BAR_NOTIFICATIONS_CLEAR_Y_OFFSET -30 // 通知中心清除按钮偏移
#define STATUS_BAR_NOTIFICATIONS_PA_TOP 20          // 通知内容距离顶部边框的距离
#define STATUS_BAR_NOTIFICATIONS_PAD_BOTTOM 30      // 通知内容距离底部边框的距离

// 控制中心组件配置
// 配置项
#define STATUS_BAR_CONTROL_CENTER_WIDGETS_SIZE (LV_HOR_RES * 0.4) // 控制中心组件大小
#define STATUS_BAR_CONTROL_CENTER_WIDGETS_PAD_TOP 30              // 控制中心组件距离顶部边框的距离
#define STATUS_BAR_CONTROL_CENTER_WIDGETS_PAD_BOTTOM 30           // 控制中心组件距离底部边框的距离
#define STATUS_BAR_GRID_COL_NUM 4                                 // 控制中心组件列数（根据实际需求更改）
#define STATUS_BAR_GRID_ROW_NUM 2                                 // 控制中心组件行数（根据实际需求更改）
#define STATUS_BAR_FLASH_LIGHT_USE_SCREEN 1                       // 使用屏幕作为手电筒
// 启用项
// 2X1大小部件
#define STATUS_BAR_USE_WIFI_LIST 0 // 使用WIFI列表部件
#define STATUS_BAR_USE_BT_LIST 0   // 使用蓝牙列表部件
// 2X2大小部件
#define STATUS_BAR_USE_MUSIC 0 // 使用音乐部件
// 1X2大小部件
#define STATUS_BAR_USE_BRIGHTNESS 1 // 使用亮度控制部件
#define STATUS_BAR_USE_VOLUME 0     // 使用音量控制部件
// 1X1大小部件
#define STATUS_BAR_USE_WIFI_AP 0       // 使用WIFI热点部件
#define STATUS_BAR_USE_WIFI_SWITCH 0   // 使用WIFI开关部件
#define STATUS_BAR_USE_FLASHLIGHT 1    // 使用手电筒部件
#define STATUS_BAR_USE_AIRPLANE_MODE 0 // 使用飞行模式部件
#define STATUS_BAR_USE_PRINT_SCREEN 0  // 使用截屏部件
#define STATUS_BAR_USE_BT_SWITCH 0     // 使用蓝牙开关部件
#define STATUS_BAR_USE_SHUTDOWN 1      // 使用锁屏部件
#define STATUS_BAR_USE_SETTING 0       // 使用设置部件

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*
 *以下为字体和图标配置，字体、图标、符号需要自行找到适配大小的图标和文字创建成对应文件名后放到APP同文件夹目录下
 *APP自带的图标和文字仅针对适配2.4寸240*320分辨率屏幕，其他分辨率请自行创建适配的图标和文字文件
 *符号的创建方法请阅读LVGL文档
 *对于控制中心的控件，需要按需对其摆放坐标进行调整，以获得自己需要的布局，左上角为0,0(x,y)(col,row),向右下依次递增
 */

/////////////////////////状态栏内容/////////////////////////
#if STATUS_BAR_USE_TIME
LV_FONT_DECLARE(app_status_bar_font_time); // 显示时间的字体
LV_FONT_DECLARE(app_status_bar_font_date); // 显示日期的字体
#endif
#if STATUS_BAR_USE_BATTERY
LV_FONT_DECLARE(app_status_bar_font_bat);    // 电池图标框符号字体,使用symbol用于自动适应主题颜色
#define STATUS_BAR_SYMBOL_BAT "\xEE\x98\x8E" // 符号编码
#define STATUS_BAR_BAT_WIDTH 18              // 电池内部填充颜色的宽度
#define STATUS_BAR_BAT_HEIGHT 8              // 电池内部填充颜色的高度
#define STATUS_BAR_BAT_X_OFFSET 1            // 电池内部填充颜色X轴偏移
#if STATUS_BAR_USE_BATTERY_NUMBER
LV_FONT_DECLARE(app_status_bar_font_soc);    // 显示电量数字的字体
#define STATUS_BAR_BATTERY_NUMBER_X_OFFSET 0 // 电量数字X轴偏移
#endif
#endif
#if STATUS_BAR_USE_BATTERY_CHARGE
LV_FONT_DECLARE(app_status_bar_font_charge);    // 充电符号字体,使用symbol用于自动适应主题颜色
#define STATUS_BAR_SYMBOL_CHARGE "\xEE\x9a\xb9" // 充电符号编码
#endif
#if (STATUS_BAR_USE_WIFI || STATUS_BAR_USE_WIFI_LIST)
LV_FONT_DECLARE(app_status_bar_font_wifi);      // WIFI图标字体,使用symbol用于自动适应主题颜色
#define STATUS_BAR_SYMBOL_WIFI_0 "\xEE\xA4\xBA" // WIFI LEVEL 0符号编码
#define STATUS_BAR_SYMBOL_WIFI_1 "\xEE\xA4\xB2" // WIFI LEVEL 1符号编码
#define STATUS_BAR_SYMBOL_WIFI_2 "\xEE\xA4\xB3" // WIFI LEVEL 2符号编码
#define STATUS_BAR_SYMBOL_WIFI_3 "\xEE\xA4\xB4" // WIFI LEVEL 3符号编码
#define STATUS_BAR_SYMBOL_WIFI_4 "\xEE\xA4\xB8" // WIFI LEVEL 4符号编码
#endif
#if STATUS_BAR_USE_BT
LV_FONT_DECLARE(app_status_bar_font_bt);    // 蓝牙图标字体,使用symbol用于自动适应主题颜色
#define STATUS_BAR_SYMBOL_BT "\xEE\xA3\x9D" // 蓝牙符号编码
#endif

/////////////////////////通知中心内容/////////////////////////
#if STATUS_BAR_USE_NOTIFICATION
LV_FONT_DECLARE(app_status_bar_font_noti);     // 通知字体,用于显示通知内容，此文件应根据APP动态调整字库
LV_IMG_DECLARE(app_status_bar_img_noti_clear); // 通知页清除图标
#endif

/////////////////////////控制中心内容/////////////////////////
#if STATUS_BAR_USE_WIFI_LIST                    // 列表展开会使用上面的WIFI SYMBOL图标，需同步适配上面的图标尺寸
#define APP_STATUS_BAR_WIFI_LIST_POS 0, 0       // WIFI列表控件位置
LV_FONT_DECLARE(app_status_bar_font_wifi_list); // WIFI列表字体,用于显示WIFI列表内容，此文件应根据APP动态调整字库
#define app_status_bar_font_wifi_list_height 14 // WIFI列表字体高度
LV_IMG_DECLARE(app_status_bar_img_wifi_list);   // WIFI大图标 颜色0xffffff
#endif
#if STATUS_BAR_USE_BT_LIST
#define APP_STATUS_BAR_BT_LIST_POS 2, 0       // 蓝牙列表控件位置
LV_FONT_DECLARE(app_status_bar_font_bt_list); // 蓝牙列表字体,用于显示蓝牙列表内容，此文件应根据APP动态调整字库
#define app_status_bar_font_bt_list_height 14 // 蓝牙列表字体高度
LV_IMG_DECLARE(app_status_bar_img_bt_list);   // 蓝牙大图标 颜色0xffffff
#endif
#if STATUS_BAR_USE_MUSIC
#define APP_STATUS_BAR_MUSIC_POS 0, 1              // 音乐控件位置
LV_FONT_DECLARE(app_status_bar_font_music_symbol); // 音乐图标字体
LV_FONT_DECLARE(app_status_bar_font_music_text);   // 音乐文本字体
#define STATUS_BAR_SYMBOL_LAST "\xEE\x98\x80"      // 音乐上一曲符号编码
#define STATUS_BAR_SYMBOL_NEXT "\xEE\x98\x81"      // 音乐下一曲符号编码
#define STATUS_BAR_SYMBOL_PLAY "\xEE\x98\x86"      // 音乐播放符号编码
#define STATUS_BAR_SYMBOL_PAUSE "\xEE\x98\xab"     // 音乐暂停符号编码
#endif
#if STATUS_BAR_USE_CONTROL_CENTER
#if STATUS_BAR_USE_BRIGHTNESS
LV_IMG_DECLARE(app_status_bar_img_brightness); // 亮度图标 颜色推荐0x525252
#define APP_STATUS_BAR_BRIGHTNESS_POS 0, 0     // 亮度控件位置
#endif
#if STATUS_BAR_USE_VOLUME
LV_IMG_DECLARE(app_status_bar_img_volume); // 音量图标 颜色推荐0x525252
#define APP_STATUS_BAR_VOLUME_POS 3, 1     // 音量控件位置
#endif
#if STATUS_BAR_USE_FLASHLIGHT
LV_IMG_DECLARE(app_status_bar_img_flashlight); // 手电筒图标 颜色0xffffff
#define APP_STATUS_BAR_FLASHLIGHT_POS 1, 0     // 手电筒控件位置
#endif
#if STATUS_BAR_USE_PRINT_SCREEN
LV_IMG_DECLARE(app_status_bar_img_prtsc);    // 截屏图标 颜色0xffffff
#define APP_STATUS_BAR_PRINT_SCREEN_POS 1, 3 // 截屏控件位置
#endif
#if STATUS_BAR_USE_AIRPLANE_MODE
LV_IMG_DECLARE(app_status_bar_img_airplane);  // 飞行模式图标 颜色0xffffff
#define APP_STATUS_BAR_AIRPLANE_MODE_POS 2, 3 // 飞行模式控件位置
#endif
#if STATUS_BAR_USE_WIFI_SWITCH
LV_IMG_DECLARE(app_status_bar_img_wifi_switch); // WIFI图标 颜色0xffffff
#define APP_STATUS_BAR_WIFI_SWITCH_POS 3, 3     // WIFI开关控件位置
#endif
#if STATUS_BAR_USE_WIFI_AP
LV_IMG_DECLARE(app_status_bar_img_wifi_ap); // WIFI热点图标 颜色0xffffff
#define APP_STATUS_BAR_WIFI_AP_POS 0, 4     // WIFI热点控件位置
#endif
#if STATUS_BAR_USE_BT_SWITCH
LV_IMG_DECLARE(app_status_bar_img_bt_switch); // 蓝牙图标 颜色0xffffff
#define APP_STATUS_BAR_BT_SWITCH_POS 1, 4     // 蓝牙开关控件位置
#endif
#if STATUS_BAR_USE_SHUTDOWN
LV_IMG_DECLARE(app_status_bar_img_shutdown); // 锁屏图标 颜色0xffffff
#define APP_STATUS_BAR_SHUTDOWN_POS 2, 0     // 锁屏控件位置
#endif

#if STATUS_BAR_USE_SETTING
LV_IMG_DECLARE(app_status_bar_img_setting); // 设置图标 颜色0xffffff
#define APP_STATUS_BAR_SETTING_POS 3, 4     // 设置控件位置
#endif

#endif

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
